In mobile networks that employ a multi-link/multi-path delivery mechanism, content is transmitted through multiple network links/paths to end user terminals. To improve system throughput when channel impairment exists, forward error correction (FEC) techniques are often applied to recover lost data during transmission.
Herein, the terms “content”, “data” or “content data” refer to the data that is needed by a user service, and the terms “parity symbols” or “parity data” refer to the redundant data generated by an FEC encoder to protect the content data. Traditional FEC codes, for example, parameterized error correcting codes (such as BCH codes), Reed-Solomon, low density parity check codes (LDPC), etc. can be applied to mobile networks that employ multi-link/multi-path delivery mechanisms in order to recover data lost during transmission. Traditional FEC codes, however, suffer the following problems when used in multi-link/multi-path mobile networks:
1. These codes are fixed pre-determined rate codes, i.e., the number of parity symbols in each codeword is determined prior to FEC encoding. The code rate determines the maximum data recovery capability. Thus, if the amount of content data lost during delivery exceeds the maximum recovery capability determined by the code rate, FEC decoding generally fails and very little if any lost data can be recovered. This problem is more pervasive in mobile networks because the underlying wireless channel conditions in a mobile network can vary over a wide range over time, thus making it difficult to predetermine a proper FEC code rate.
2. The receiver has to receive a proper set of content and parity data to be able to perform FEC decoding. Consider the case in which content and panty data from a source are sent over multiple paths from the server to the receiver. Specifically, the server divides the total data into subsets and sends each subset over one of the multiple paths. There are two ways to distribute the data: (1) each subset of content data and parity data is disjoint from each other subset of content data and parity data; and (2) a subset of content data and parity data contains some duplicate data from another subset of content data and parity data.
In the first situation, the data redundancy (or equivalently FEC protection) is only determined by the FEC code rate. Thus, the server has to know each path's channel characteristics. Only with the channel condition knowledge, is the server able to determine an appropriate FEC code rate, so that the code rate is sufficient to overcome the aggregated data losses from multiple paths and meanwhile attempt to keep the channel encoding/decoding complexity low. Multiple network links (paths) may be dynamic or overlapping. Obviously, such knowledge can be difficult, if not impossible, to obtain in an aggregated network delivery scenario. A common approach is to choose a low code rate that targets the worst channel condition. Although this approach minimizes the probability of FEC decoding failure, it may decrease FEC protection efficiency for those receivers with milder channel conditions. In addition, a low code rate usually increases the FEC encoding complexity at the server side and may increase the FEC decoding complexity at the receiver side. The latter factor is especially undesirable since a mobile receiver is often power and complexity constrained.
In the second situation, some duplicate data are sent over different paths to the receiver. This approach can flexibly adjust data redundancy while not running into the problem of deciding a code rate a priori. However, in this case, identical copies of content or parity data may arrive at the receiver from different paths. When this occurs, the receiver has to discard the duplicate copies because the duplicate packets are not useful in recovering content data using traditional FEC codes. Hence, this approach may lead to a waste of network bandwidth as well as increased complexity and overhead in the receiver.
When a fountain based FEC code is applied to multi-path mobile network applications, as traditional FEC codes, its encoded symbols are encapsulated into data packets and sent over multiple paths to the receiver. In turn, the receiver performs fountain FEC decoding to recover content data based on received data. However, depending upon the number of fountain based FEC codes that arrive at the receiver, the encoded fountain symbols with different edge degrees have different capabilities in recovering content data symbols. Consider, for example, when only a fraction of a fountain codeword arrives at the receiver so that complete data recovery is not possible. In this case, if the received coded data symbols have undesirable edge degrees, the receiver can recover only a minimal number of content data symbols. A possible remedy to the problem is to introduce some packet scheduling mechanism which coordinates data over multiple paths so that they do not overlap at the receiver. However, such solution often requires stringent receiver feedback and may also increase system complexity and decrease system throughput.
Content data often has inherent differences in importance with respect to user service experiences. For example, in video streaming applications, certain coded frames are more important than others to reconstruct the original video. When simply applying a fountain FEC code to protect user data, the FEC protection profile generally does not match the importance profile of the content data. As a result, when complete content data recovery is not possible, more important content data suffers the same loss rates as the less important ones. This results in QoS degradation that affects user viewing experiences.